#ifndef CONTACT_DATA_H_
#define CONTACT_DATA_H_

#include "Vec3.h"
#include "Color.h"

class Scene;
class Renderable;

class ContactData
{

public:
    ContactData() : m_scene(0),
                    m_hasColor(false),
                    m_hit(false),
                    m_hitTarget(0){}
    ContactData(Scene* scene) : m_scene(scene),
                                m_hit(false),
                                m_hasColor(false),
                                m_hitTarget(0){}
    const Color& GetColor()const{return m_contactColor;}
    bool HasColorStorred()const {return m_hasColor;}
    void SetColor(const Color& c){m_hasColor = true; m_contactColor = c;}

    bool m_hit;
    Vec3 m_hitPoint;
    Vec3 m_hitNormal;
    Renderable* m_hitTarget;
private:
    bool m_hasColor;
    Color m_contactColor;
    Scene* m_scene;
};


#endif